/*
 * Measurement.h
 *
 *  Created on: 06.12.2011
 *      Author: jan
 */

#ifndef MEASUREMENT_H_
#define MEASUREMENT_H_

#include "Point.h"
#include <vector>
#include "MathUtil.h"
#include <cmath>

namespace std {

class Measurement {
public:
	Point p;
	int grad;
	double startAngle;
	double finishAngle;
	double heading;
	double radius;
	double divlen;
	vector<double> scan;
	vector<bool> wall;
	vector<Point> points;
	Measurement(const Measurement& m) {
		p = m.p;
		grad = m.grad;
		startAngle = m.startAngle;
		finishAngle = m.finishAngle;
		heading = m.heading;
		radius = m.radius;
		divlen = m.divlen;
		scan = m.scan;
		wall = m.wall;
		points = m.points;
	}

	Measurement& operator=(const Measurement &m) {
		p = m.p;
		grad = m.grad;
		startAngle = m.startAngle;
		finishAngle = m.finishAngle;
		heading = m.heading;
		radius = m.radius;
		divlen = m.divlen;
		scan = m.scan;
		wall = m.wall;
		points = m.points;
		return *this;
	}

	Measurement(vector<double> scan,vector<bool> wall, int grad, double startAngle, double finishAngle, double heading, double radius, double divlen, Point p);

	virtual ~Measurement();
};

} /* namespace std */
#endif /* MEASUREMENT_H_ */
